package main

import (
	"fmt"
	"html/template"
	"net/http"
)

func index(w http.ResponseWriter, r *http.Request) {
	//定义模版
	//解析模版
	t, err := template.ParseFiles("web07/index.tmpl")
	if err != nil {
		fmt.Printf("Parse template failed, err:%v\n", err)
		return
	}
	msg := "小王子"
	//渲染模版
	t.Execute(w, msg)
}

func home(w http.ResponseWriter, r *http.Request) {
	//定义模版
	//解析模版
	t, err := template.ParseFiles("web07/home.tmpl")
	if err != nil {
		fmt.Printf("Parse template failed, err:%v\n", err)
		return
	}
	msg := "小王子"
	//渲染模版
	t.Execute(w, msg)
}

func index2(w http.ResponseWriter, r *http.Request) {
	//定义模版（模版继承的方式）
	//解析模版
	t, err := template.ParseFiles("web07/templates/base.tmpl", "web07/templates/index2.tmpl") //先是根模版，再是块模版
	if err != nil {
		fmt.Printf("Parse template failed, err:%v\n", err)
		return
	}
	msg := "小王子"
	//渲染模版
	t.ExecuteTemplate(w, "index2.tmpl", msg) //解析了两个或以上的模版，要通过 ExecuteTemplate 来指定最终渲染的是哪个模版
}

func home2(w http.ResponseWriter, r *http.Request) {
	//定义模版
	//解析模版
	t, err := template.ParseFiles("web07/templates/base.tmpl", "web07/templates/home2.tmpl") //先是根模版，再是块模版
	if err != nil {
		fmt.Printf("Parse template failed, err:%v\n", err)
		return
	}
	msg := "七米"
	//渲染模版
	t.ExecuteTemplate(w, "home2.tmpl", msg) //解析了两个或以上的模版，要通过 ExecuteTemplate 来指定最终渲染的是哪个模版
}
func main() {
	http.HandleFunc("/index", index)
	http.HandleFunc("/home", home)
	http.HandleFunc("/index2", index2)
	http.HandleFunc("/home2", home2)
	err := http.ListenAndServe(":9000", nil)
	if err != nil {
		fmt.Printf("HTTP server start failed, err:%v\n", err)
		return
	}
}
